@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED228 FREE SECTORS COPYING---D1:DISKFIX.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 160ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u8<<  B JKIHiDiELV`L8 8 BLV`LxT}8t8l Lu8hihiHHȱȱL8c !#3`Lu8JJJJ`H 8h`HU}ȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICV}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::iX}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8Y} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9Z}Ln; ` :Y;Y;L;L;)} Setting Up ATARI 130XE Ram Disk; 9L; ; -9  [} L;D8:; :9 :Y;L RUNME.480:0 POKE 742, 471 POKE 741, 2552 CLR3 PRINT " Booting VISUAL480 ..."4 RUN "D: i}VIDEO480.L"> VIDEO480.L:100 ? " VISUAL 480II videogenerator"110 ? "<3DOWN>For quadruple colored hires-gra j}phics."120 ? "<2DOWN>Idea and implementation: Jesper Buhl."130 POS. 2,34:? "Generating videocontroller II ... ";200 REM v2 k}.0, released 9102041409, jbuhl@daimi.aau.dk500 REM PLACE DATA IN BLOCK #0510 CLR : RESTORE 1020520 FOR A=12288 TO 12297:RE l}AD B:POKE A,B:NEXT A600 REM PLACE PRGS IN BLOCK #1610 FOR A=19984 TO 20172:READ B:POKE A,B:NEXT A700 FOR A=20224 TO 20264: m}READ B:POKE A,B:NEXT A800 READ B:IF 0<=B THEN POKE A,B:A=A+1:GOTO 800810 IF B=-1 THEN ? "File presumed ok.":EN n}D820 C=-B:READB830 FOR D=1TOB:POKE A+D-1,C:NEXT D840 A=A+D-1:GOTO 8001000 REM COUNT, COLOURS & MSB'S1010 REM (12288, BL o}OCK#0)1020 DATA 0,182,52,132,80,112,48,96,128,641030 REM2000 REM DISPLAY/CANCEL/PLOT,2010 REM DLI/DLIST2020 REM (19984/2 p}0018/20040, 20224 BLOCK#1)2030 DATA 104,141,47,2,141,197,2,141,0,2,169,79,141,1,2,141,49,2,169,41,141,48, 2,161,19 q}2,141,14,212,169,34,141,47,2,96 2040 REM2050 DATA 104,169,64,141,14,212,169,32,141,48,2,169,156,141,49,2,169,10,141, r} 197,2,962060 REM2070 DATA 104,104,133,204,104,133,203,41,7,133,207,162,3,70,204,102,203,202, 208,249,24,165,2 s}03,105,16,133,203,165,2042080 DATA 105,48,133,204,104,133,206,133,208,104,72,162,5,10,38,206,202,208, 250,133,205, t}104,162,3,10,38,208,202,208,2502090 DATA 24,101,205,133,205,165,206,101,208,133,206,24,165,203,101,205,133, 203,16 u}5,204,101,206,133,204,169,128,166,2072100 DATA 240,4,74,202,208,252,133,207,73,255,133,208,104,162,3,160,0,177,203, v} 37,208,145,203,104,74,72,144,6,177,2032110 DATA 5,207,145,203,165,204,24,105,32,133,204,202,208,229,104,962120 REM2130 D w}ATA 141,10,212,72,138,72,174,0,48,189,1,48,141,198,2,189,4,48,141,46,79, 189,7,48,141,150,79,232,224,3,208,22130 D x}ATA 162,0,142,0,48,104,170,104,642150 REM2160 DATA -112,3,79,16,80,-15,101,79,0,96,-15,88,143,65,41,79,-1- Happy typing ( y}-:By the way: It seems that americans HAVE to have the prior written permissionbefore copying anything - this is hereby gr z}anted. When I get a little sparetime, I'll post the 80-column screen-editor. Jesper Buhl/ jbuhl@daimi.aau.dk C {}omputer Science Department, University of Aarhus, Denmarkn screen-editor. Jesper Buhl/ jbuhl@daimi.aau.dk C ?Date: 8 Dec 90 02:39:10 GMTFrom: noao!ncar!elroy.jpl.nasa.gov!sdd.hp.com!wuarchive!zaphod.mps.ohio-state.edu!magnus.ircc.ohi}}o-state.edu!news@arizona.edu (Frank E. Seipel)Subject: Atari in a PC Case (Hardware Mod.)To: Info-Atari8@naucse.cse.nau.edu~} This is another text file I had laying around.. If you'd like to see more,please E-Mail me. I think this file is formatte}d to be output to a printer. ATARI---->PC Conversion Page 1 THE FOLLOWING INFORMATION IS PRESENTED TO A}SSIST THOSE INTERESTED IN CREATING A CUSTOM ATARI COMPUTER SYSTEM IN AN IBM 'PC' CASE. IT IS BY NO MEANS MEANT TO S}ERVE AS A COMPLETE DESCRIPTION OR 'HOW-TO-BOOK' ON THE SUBJECT AND IT IS ASSUMED THAT THE PERSON WHO UNDERTAKES THIS } PROJECT IS WELL VERSED IN BUILDING ELECTRONIC PROJECTS. THIS INFORMATION IS PRESENTED BY MICRO SOLUTIONS FOR USE IN TH}E PUBLIC DOMAIN. >>>SPECIAL NOTE:MICRO SOLUTIONS WILL NOT BE HELD RESPONSIBLE FOR SPONTANEOUS MELTDOWN O}F YOUR COMPUTER OR PERIPHERAL EQUIPMENT DUE TO THE UNDERTAKING THIS PROJECT. So you want to put you're ATARI }into a 'PC' CASE.... Basically what's needed is: A thorough understanding of basic electrical circ}uits, soldering skills, some mechanical ability, and of course an IBM style case to your liking. These cases have become} quite popular and are offered in numerous configurations. The main thing to remember when selecting one of these i}s, will your motherboard fit inside it without TOO MUCH modification? (Let's try to keep the SKIL saw in the closet} for this project.) Another consideration, is whether or not you wish to have a HardDrive as part of this All-In-One sys}tem. Choosing an XL or XE computer makes this a much more viable possibility, because of the parallel expansion bus}s and the various HardDrive interfaces designed for this buss. Last, but not least, is the very likely addition of }a TransKey board to enable the use of an external IBM style keyboard (well.... you know I had to say something abou}t my product in this article). Most of these 'PC' computer cases on the market also come with a fairly b}eefy switching power supply capable of running the Computer, extra RAM, Disk Drives, and various hardware enhancements. }To fully take advantage of this built-in power supply requires some rewiring of many of the stock Atari power plugs} and devices. To minimize some of this and to better utilize your storage media, it is recommended that XF551 drive}s be used in this project. The nice thing about these drives is the fact that they are really IBM type drive mechanisms }in disguise, this allows for a simple bolt-in, no modification installation. The power connection on these drives w}ill readly accept the supplied power connectors on the switching supply and the drives will give you 360K storage p}er disk with a suitable DOS (ie: MYDOS or SPARTADOS). The XF controller (the PCB included with the XF551 drive) wil}l need some slight modifications as follows: 1) After seperating the two halfs of the original XF551 plastic} enclosure, unscrew the 4 screws holding the drive in place. 2) Unplug both the 34pin and 4pin connectors} from the drive, then lift it out of the enclosure and set it to the side. 3) You will now find a couple} of screws holding the PCB to the bottom of the enclosure. Remove these and lift the PCB straight up and } ATARI---->PC Conversion Page 2 out. 4) Desolder the 34pin header (w/cable) from the P}CB and replace it with an IDC style male header. 5) Clip off the 4pin female molex type power plug while} leaving the connection wiring intact. Now replace this with a male 4pin IBM floppy power connector, being sure to }matchup the PCB silkscreen designations with the proper pin numbers (pin1=+12vdc pin2=GND pin3=GND pin4=+5vdc). } 6) Use a standard IBM drive cable to connect the drive to the controller card. These cables normally have t}wo edge card connectors on one end, the END one is the one to use. 7) Now plug in power connectors from }the switching power supply to the Disk Drive and also to the controller. The drive is now ready to use (be sure to }set the drive select switches on the controller to the desired SIO #). If you wish to use a 3.5" }drive(s) in your system and wish to have them be capable of 720K storage, a complete kit and instructions are avail}able from Innovative Concepts. If you don't require the full capacity, but would still like to use one of these smaller }drives then the following instructions are for you. 3.5" Drive Conversion: Using the controll}er as first modified, connect a 3.5" IBM drive in place of the 5.25" drive (this will usually require adapter plugs } that normally come with the drive when purchased). No further modifications required. Dual Media Drive}s from one Controller: 1) After performing the controller modifications already listed, turn over the PC}B and locate pins 10&16 on the 34pin header. You will notice a trace connecting these pins together and another trace } leading towards the center of the board from pin16. Cut the trace between pins 10&16 with an XACTO knife or razor bla}de, being sure to leave the other trace on pin16 intact (this is the drive select line from the floppy controller c}hip). 2) Solder a wire from pin16 to the center of a SPDT toggle switch. 3) Solder a wir}e from pin10 to one side of the switch and solder a wire from pin12 to the other side of this same switch. } 4) Plug the other unused 34pin edge card connector on the floppy drive cable into the 3.5" IBM drive (this may requir}e an adapter). ATARI---->PC Conversion Page 3 Also, plug in a power connector from the} switching power supply (this may require an adapter as well). 5) The SPDT toggle switch will now select} which drive will respond off of this controller (either the 5.25" or the 3.5"). Pin10=Drive 1 Select, Pin12=Drive }2 Select, 34pin edge card END connector=Drive 1, middle connector=Drive 2. With this setup you wil}l be able to use either the 5.25" or 3.5" drive with but one controller. Both drives will be capable of 360K of sto}rage. Only one drive is usable at any given time from the one controller (Disk duplication and/or copying between the tw}o drives is not possible). A second controller and drive will still be needed for disk duplication and/or copying.} Computer Power Connection: For simplicity, a 600/800XL or XE are the computers of choice in} this situation. The reason; only a single +5vdc supply is needed, where as the earlier 400/800 models and the 1200X}L required either 9vac or if bypassed; +5vdc, +12vdc, -5vdc. The +5 and +12vdc is readly available off of the IBM s}witching supply, but the -5vdc or 9vac isn't. You could of course kludge up some sort of supply to handle this, but} in the long run, the XL/XE's are better for other reasons as well (parallel buss & built-in BASIC to name a few). } The 600/800XL and XE's use the same power connection plug, this is a 7pin DIN (an 8pin DIN can be subsituted }by removing it's center pin). On this plug pins 1,4,6=+5vdc and pins 2,3,5,7=GND. Either cut off one of the provide}d power connectors on the switching power supply and subsitute a DIN plug or better yet, make up a 4 pin male floppy } power pigtail with a DIN on the other end. Only +5vdc and GND are required on this connection. Hard D}rive Installation: To install a HardDrive with high speed access will require an XL or XE computer havin}g the External Parallel Buss (often times called PBI or ECI). It is through this parallel buss that a special drive } controller will be connected, offering an industry standard HardDrive interface referred to as SASI or SCSI. To the bes}t of my knowledge there are currently three such devices available, the CSS Black Box, ICD's MIO, and Supra's Hard }Disk Interface. Any of these is suitable for putting a HardDrive in your system, merely requiring the appropriate S}ASI or SCSI controller and drive. If you're willing to sacrifice speed and if you can find it, there is }an SIO connectable device that will give you HardDrive interfacing. It was called the ATR8000, actually a complete compu}ter on it's own, which used the Atari as a terminal link. With the right ATARI---->PC Conversion } Page 4 options, this Co-Processor board was capable of accessing HardDrives. Even without extra options,} the ATR8000 would allow for connection of up to 4 IBM style Floppy disk drives, looking for the most part, as 4 At}ari drives on the SIO port. It is also my understanding that higher capacity drives were possible through special config}uration, allowing up to 1.2 MEG with the proper drive and DOS. There will be some problems with this interface, suc}h as not 100% compatibility with all Boot Disks and/or DOS'es and very slow HardDrive access, otherwise it is a goo}d alternative for 400/800 users especially. Some of the other advantages to the parallel buss devices, is } that they usually do more than just allow for HardDrive connection. To name a few; extra expansion RAM usable as a RAM}DISK, RAM for Print Spooling, RS232 Port, Parallel Printer Port, and built-in Machine Language Monitor. Not all fea}tures are offered or are all available from any one device. The CSS Black Box is slated for a floppy drive interfac}e enhancement, possibly similar in nature to the ATR8000,s floppy interface. This would give you an all in one drive con}troller that's also fast. Most of the parallel interfaces will require some relocation in order to }fit inside your 'PC' case. This amounts to fabrication of ribbon cable extensions in some cases, which may be as simple }as using crimp-on connectors or as difficult as point-to-point wiring depending on the interface and computer choos}en. My actual experience was with a Black Box and a 800XL computer. This was relatively simple, amounting to buildi}ng a cable from one 50pin edgecard connector, one 50pin female IDC plug, and about 12" of ribbon cable. Both connectors }were of the crimp-on variety, making for a no solder installation. When making your own cables, be sure to always l}ine-up the pin#1's on both sides. With the flexability of the interconnecting ribbon cable, you sho}uld be able to fit both the computer motherboard and the parallel interface board into most any 'PC' case. A little imag}ination is most useful in this task and good mechanical know how is imperative. Boards can be stood on end or stack}ed, just depends on the particular situation and alot on what you perfer to do. Find yourself a good supplier of me}chanical spacers, fasteners, and PCB guides, because you'll be knee deep in them before your'e done with this project. } Power for your parallel interface can most likely be derived from one of the floppy power connectors on y}our 'PC' switching power supply. Once again it will require some rewiring of connectors and some good electrical se}nse. Power for the HardDrive and it's associated SASI/SCSI controller, will normally be as simple as plugging strai}ght into one or two of the leftover floppy power connectors (by this time we may have exhausted all the available c}onnectors, have no fear there are 'Y' adapters available). Now comes a problem, most HardDrives need a few se}conds to rev-up to full speed when first powered up. During this time they are not accesable from the controller an}d many times this can result in bootup ATARI---->PC Conversion Page 5 errors. One poss}ible solution would be to provide a seperate power switch on the front panel for the Atari computer, switching it on } after the HardDrive was up to speed. Another solution is something I came up with on my system, a computer power delay} timer. This consisted of a 555 timer with it's trigger line tied to it's timing capacitors positive side, a 5vdc S}PST relay on the output of the 555 with the common of it's coil and switch going to +5vdc, and the entire affair wi}red in series with the computer power line. Basically what happens is, that upon power-up, the timer's output will immed}iately go positive, thereby causing the relay to do absolutely nothing. After the timer times out (depends on the R}C network used), the output will drop to GND causing power to flow through the relay's coil, pulling the switch clo}sed, and allow power to go to the computer. 555 pin #s +5VDC}---[:::]--2-6--+)(---GND 220 47uf K 1--------GND +}5VDC----------4 " ----------8 *RELAY* +5VDC--[COIL]--3 *RELAY* } *SWITCH* +5VDC----o/o-----[ATARI]--GND +5VDC----[<]---3 1N4004 } The idea is to pick an RC network that gives sufficient time for the HardDrive to rev-up, I found 220K for the timing r}esister and 47uf for the timing capacitor to be quite good for my Seagate drive (this gives about a 15 second delay}). Increasing the resister's value will result in a longer time delay and decreasing it, will produce a shorter del}ay. It is also advisable to use a relay who's contacts are rated for 1.5 amps, and for protection against arcing, solder} a .01uf capacitor across the contact connections. Also, to protect the 555 timer from high EMF voltages that may b}e generated by the relay's coil, solder a 1N4004 diode across the coil with it's cathode (marked with a line) going} to the +5vdc side. Another rather nifty feature of this power-up delay timer, is that it offers an easy} way to perform a ColdStart Reset for owners of the TransKey board (there I go again). To do this, take the Gray wire } from the TransKey board, and instead of attaching it as suggested in it's original instructions, solder it to pin2 of} the 555 timer instead. Now everytime you do a RESET from the IBM keyboard (attached to TransKey), you will shutdow}n the power to the Atari computer for ATARI---->PC Conversion Page 6 the duration of t}he time delay. This will of course result in a ColdStart Reset, just as if you had reached around back and shut off } the computer's power switch and then turned it back on again. The main advantage is that you don't need a special O.S. }or software routine to provide this keyboard coldstart reset. Cartridge Port: This is w}here things get alittle tricky.... How do you get access to the Cartridge Port once your Atari is tucked} inside the 'PC' case? Well the best solution I have seen, is something that Bob Woolley from San Leandro Computer Club }(SLCC) came up with. Essentially what he did was to take one of those 34pin IDC edge card connector}s (yes, the same one used for the IBM floppy drive cables) and with a little filing on the ends, he was able to insert } this inside the plastic cartridge shrouding that came with the Atari motherboard (that's right you have to remove it} from the board first). He then had a ribbon cable extending from this connector about 10-12 inches connecting to t}he Atari motherboard via a 34pin connector (this required desoldering the original cartridge socket & replacing it with} wirewrap pins extending out the backside of the board). The completed assembly was then meant to be mounted behind }a 3.5" drive bezel for insertion of the cartridge from the frontside of the 'PC' case. For more complete informatio}n with pictures on this modification, consult the May 1990 issue of the SLCC Journal. ***HINT: keep the ribbon as s}hort as possible for reliable cartridge operation*** Conclusion: There are of course many ot}her things that can be put inside your new 'PC' case, but only you can decide what's best for you. Most importantly}, plan out this project carefully before you purchase your 'PC' case and be sure to leave yourself sufficient room for f}uture additions. (This will keep you from having to start all over again... Yuck!) Most of all, have fun with your }new ATARI PC and enjoy the looks of approval you'll get from those unsuspecting IBM'ers out there.  } Sources for Items Mentioned: BLACK BOX Computer Software Services P.O. Box 17660 Rochester,NY 1461 }7 (716)586-5545 MULTI-IO (MIO) ATARI---->PC Conversion Page 7 ICD  } 1220 Rock Street Rockford,IL 61101 (815)968-2228 SUPRA HARDDRIVE INTERFACE BEST Electronics 2 }021 The Alameda STE 290 San Jose, CA 95126 (408) 243-6950 XF35 KIT Innovative Concepts 31172 S }hawn Drive Warren,MI 48093 (313) 293-0730 TRANSKEY (IBM keyboard interface) Micro Solutions P.}O. Box 750396 Petaluma,CA 94975 Genie M.ST.PIERRE1 TRANSKEY (IBM keyboard interface) Micro Solutions P.=Date: 5 Nov 90 23:29:02 GMTFrom: noao!ncar!gatech!uflorida!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!magnus.ircc.ohi}o-state.edu!news@arizona.edu (Frank E. Seipel)Subject: Transkey -- IBM keyboard on an 8-bitTo: Info-Atari8@naucse.cse.nau.e}du{TRANSKEYHardware Review PRODUCT DESCRIPTION: The main emphasis of this product was to provide a means of utilizin}g a betterquality keyboard with the Atari than the one originally provided. Themodification works with the 4oo, 8oo, XL, an}d XE models. Since IBM style keyboards have become so plentiful and are made in numerousconfigurations, it was deemed that }this would be the keyboard of choice. Thisgives the added flexibilty of locating the keyboard where you want it,independent} of the computer and it's associated peripheral equipment. Also, dueto the additional function keys, cursor keys, ect., seve}ral new features areprovided that could not be implemented by the original Atari keyboards. One ofthe most interesting of t}hese, is the ability to send out full commands (BASIC &MAC65) with a single keypress. This and many other features will be c}overed ingreater detail a little later on, for now let's look at what TRANSKEY is from ahardware point of view and what is }involved in installing it. THE HARDWARE TRANSKEY is a microprocessor based translater board measuring aproximately 2.5x} 3.5 inches and is designed to fit underneath the RF shield on the Atarimotherboard. The TRANSKEY board is provided with dou}ble sided tape attached tothe solder side and is meant to be placed in a location where it can besandwiched between the shi}eld and the motherboard. The location will varydepending on what model of computer it is installed in. On the 1200XL it will} benecessary to either cut the RF shield or not use it, since there is virtually noroom underneath it. On the 400/800 & al}l XL models, the TRANSKEY derives it's main communicationand power from the Atari via a small piggy-back board that attaches} to TRANSKEYwith a ribbon cable. This piggy-back board is designed to be plugged into thesocket where POKEY (Atari Part# C0 }12294) would normally reside, with POKEY thenplugged into the piggy-back board to complete the installation. On theunsocket!}ed XE series machines, the installation requires soldering directly tothe POKEY chip. To fully complete the installation an"}d assuming that one wishes to haveSTART,SELECT,OPTION,RESET available from the remote keyboard, will require theattachment #}of 4 jumper wires. Three of these wires go to a single chip calledCTIA or GTIA (Atari part# C014805) to tap into the option $}select circuitry. Thepoint where the 4th wire for Reset goes, varies depending on the model ofcomputer. Generally to instal%}l these jumpers, it merely requires pulling a chipout of it's socket, inserting the bared end of the jumpers into the approp&}riateholes in the socket, and then re-inserting the chip that was removed. Of courseon the XE series it isn't possible to r'}emove the chips, so these jumpers willhave to be soldered in place. With TRANSKEY installed, all normal operations of the A(}tari are unimpaired,including the use of the stock Atari keyboard. However, with TRANSKEY and anexternal IBM style keyboard)} attached, there will no longer be any need to usethe stock keyboard except for the following conditions: When Cold-Booting*} from cassette tape, it will only work by pushing START fromthe stock keyboard prior to engaging power. On XL/XE machines t+}o disable Basic on Cold-Boot, it will still be necessary topush OPTION on the stock keyboard (See section 'Other Special Key,}s' page#3 for away to disable basic after boot-up). The reason for this, is that for the 1st couple seconds after powering -}up, theIBM style keyboards usually run a self-test which basically doesn't allow forproper recognition of a key pressed dur.}ing this time. Since the Atari looks forthese special key presses to occur very soon after the power is turned on, itwill f/}ail to see these with the IBM keyboard and instead just do a normal ColdStart. The IBM keyboard is connected by means of a 0}5 pin DIN inline jack attached by asmall ribbon cable to the TRANSKEY main board. This ribbon can be routed throughan exist1}ing hole or slot on the computers case, by unplugging it from theTranskey board and then reconnecting it when done. For thos2}e of you that preferto permanently mount this jack, it is available as a chassis style jack withmounting hardware (specify 3}when ordering). FEATURES With either an XL or XE computer, almost full use of all the extra keyfunctions on the IBM key4}board are implemented. This includes single key cursormovement, Home cursor, End of page cursor and Insert/Delete modes. Als5}o aspecial Cursor Left Page/Right Page is available by pressing Page Up/Page Downrespectfully. On a 400/800 machine the pag6}e movement functions are notrecognized, although everything else is. These functions are directly accessable from the numbe7}r pad after powering upthe system (Default), if you want to use the number pad for number entry, simplypress the NUMLOCK ke8}y. These functions will still be available, but will nowrequire a Control - Function combination to initiate. If you want to9} restore thedefault condition (single keypresses), just press the NUMLOCK key once more(pressing NUMLOCK toggles between th:}e two modes). The Home key has yet another use, when pressed with the Shift key it will bothhome the cursor and clear the s;}creen. This is the same as Shift - Clear on astock Atari keyboard. Pressing the Escape key prior to this combination willst<}ill print the curved arrow symbol like the stock system. The Insert & Delete keys when pressed with Shift, will perform whol=}e lineinsertions or deletions. If a 101 key Enhanced keyboard is being used, the extra cursor control, Insertand Delete ke>}ys will work the same as their number pad counterparts, unchangedby either Shift, Control or NUMLOCK. Perhaps one of the ni?}cest features, is the indication of CapsLock and NumLockby led indicater lights on IBM style keyboards, that are so equipped@}. The Function Keys: On an XL or XE series machine Control F1 - F5 will provide the followingspecial functions: ContrA}ol F1 Disables the keyboard (both stock an external) and until pressedagain, all keys will be ignored by the computer. ConB}trol F2 Disables DMA. Pressing this will cause the screen to go black untilany other key is pressed. While the screen is blaC}ck, processing time isaccelerated by 30%. Control F3 Disables the audible keyboard click when a key is pressed, pressingiD}t again will re-enable the click sound. Control F4 Toggles between International symbols and standard graphics symbolson tE}he screen. Control F5 This acts as the HELP key, since there isn't one on most IBMkeyboards. On all other machines 400/80F}0's included, Control F6 acts as the Atari InverseVideo key, Control F7 is the BASIC macro select and Control F8 is the MAC6G}5macro select. The last two keys (Control F7 & F8) control possibly the most interesting addedfeature of the new keyboard,H} it's the ability to send out an entire string ofcharacters with but one signal keystroke (Macros). Built-in to TRANSKEY areI} twopredefined tables of some commonly used commands for either BASIC or MAC65Assembly languages. These are sent by pressinJ}g F1 - F8 and depending uponwhether Control F7 or Control F8 was last pressed, will spit out either theBASIC macro or the MK}AC65 macro (Defaults to BASIC on power-up). Below is a listof the supplied macro commands. MACROS BASIC MAC/65 F1 LIL}ST LIST F2 RUN ASM,#-,#D:F3 SAVE"D: SAVE#D:F4 LOAD"D: LOAD#D:F5 ?PEEK( FIND/F6 POKE REP/F7 BackupM} Backup F8 ?FRE(0) SIZE * F7 = SAVE"D:BACK" in Basic, "SAVE#D:BACK" in MAC/65 Note: stands for Carriage N}Return, commands with this as a suffix will beexecuted immediately. F7 is a way to easily save a back-up of whatever you areO}working on to disk (under the name 'BACK') with a single keystroke. Function keys F9 - F12 (F11 & F12 available on EnhancedP} keyboards only) areused as option select keys. F9 STARTF10 SELECTF11 OPTIONF12 HELP The ALTERNATE (ALT) key wilQ}l also function as the OPTION key and the SYSREQ keywill also act as a HELP key (as well as Control F5). OTHER SPECIAL KEYR}S The key with the ($-) and (`) symbols on it (normally on the upper rightcorner) acts as an extra Escape key, thus placiS}ng it where most people are usedto it being. Since these symbols are not directly available on the Atari, thiskey now has aT} practical use. The key marked PRINT SCREEN (or Shift *) when pressed will output an unusedcharacter on the keyboard matrixU} (Dec #36, HEX $24). This in itself isn't veryuseful, but with a little ingenuity on the user's part, this key could be lookV}edfor and caused to activate a screen printing program. To see this key in action,you could type in: 10 ?PEEK(764):GOTO 10 W} RUN (or F2). This routinewill continuously look for any keypressed and print out it's raw matrix keycodevalue. TX}he Control SCROLL key combination will actually be recognized as the Break keyto the Atari computer (On most 84 key keyboardY}s this key is also labled asbreak). If Control, ALT and the NumPad DELETE key are pressed together, this willresult in a SZ}ystem Reset to occur (assuming the Reset jumper wire wasinstalled). Releasing the DELETE key 1st prior to Control and ALT, w[}ill usuallyresult in a re-boot with Basic disabled. Releasing the ALT key 1st prior toDELETE, will result in a normal Reset\} with Basic enabled. If you are using a BTC series keyboard, the extra key labeled MACRO willproduce a simultaneous Shift C]}ontrol action in combination with any other keypressed. Several programs recognize this as a send macro string function, of^}course on keyboards without this key, the normal Shift Control combination wouldbe used instead. Keys not utilized are: SCR_}OLL LOCK and the combination PAUSE/BREAK key foundonly on Enhanced keyboards. SOFTWARE COMPATABILITY TRANSKEY is an ext`}ernal independent device, having it's own processor andmemory, and by design is suppose to emulate a piece of hardware (a sta}ock Atariokkeyboard). To the Atari computer, signals coming from TRANSKEY will beindistinguishable from signals that a stocb}k keyboard would produce. This meansthat any software ever written wil be compatible with the TRANSKEY board, theonly excepc}tions are as follows: When a program such as a wordprocessor looks at keys in an entirely new lightand essentially reassignd}s new meaning to these keys, there could be a conflict.An example would be where the extra symbols on the arrow keys no longe}er print toscreen, but instead are used for moving the cursor to the next word, or the nextline, ect.. Since these charactef}rs are on entirely different keys on the IBMstandard, it will take some getting used to to make the same things occur in apg}rogram of this kind. For instance when running from MAC65's DDT menu, toincrement or decrement the memory being viewed in thq}B%DOS SYSB*)DUP SYSB SRAMDISK COMB \HIRES TXTB|TRANSKEYTXTBuTRANSKY2TXTBTRANSFIXTXTBPAINTER COMB-PAINTER DOCBKEYBUF M65B+ARGSOS3 DOCBARGSOS3 TXTB!ARGSOS3 128BRUNME 480BVIDEO480L e display window requirespressing either the (-) or (=) keys on the upper right of the keyboard. If youtried pressing the ur}p-arrow or down-arrow instead (as the program instructionsdictate) nothing will happen, at least not on the IBM keyboard. Ths}is way ofdoing things is rather rare, since most programs will recognize the keys in amore standard fashion. Another side t}effect of some of the word processing programs, is that many timesthey are designed to put the system in lower case when firu}st booted up. Sincethere is no communication of this to the TRANSKEY board, the keyboards CapsLocklight will indicate an upv}per case (or CapsLocked) condition (this is not thecase when using a PC/XT keyboard see next section for details). This can w}usuallybe easily remedied by pushing the CAPSLOCK key twice which will reinitialize thecomputer to the keyboard and put thex} computer in upper case mode. Thisparticular problem can also occur if the CAPS key is pressed on the stock Atarikeyboard, y}but the same fix will also correct this problem. KEYBOARDS TO USE TRANSKEY was designed to be as flexible as possible anz}d because of this, shouldbe compatible with most any IBM PC/XT/AT or 3rd party equivalent keyboard. Bestresults will usuall{}y be obtained by selecting an 'AT' configured (or dipswitchconfigurable) keyboard instead of the auto-configuring types. |}Configuring TRANSKEY to the keyboard is extremely easy, all that is required isto plug in the keyboard with the computer off}} and then simply switch thecomputer on. TRANSKEY will then perform an analysis of the keyboard attached andauto-configure i~}tself to it. If you have a switchable PC/AT keyboard, be sure toset it's dipswitches to 'AT' mode. This will insure proper s}etting of theCapsLock light on power up. When using a PC/XT keyboard, TRANSKEY willinitialize itself to lower case mode (al}though the computer will be in uppercase, unless a boot-up program has changed the setting). The action of pressingCAPS LOC}K would then place the computer positively in an upper case mode andindicate this condition by lighting the CapsLock light. }Repeated pressing ofthis key and the indication of the CapsLock light, would then correspond to theactual case mode of the }computer. The reason for this difference between an 'AT' keyboard and a PC/XT keyboard,has to do with who controls the indi}cater lights. On an 'AT' keyboard thecomputer is solely responsible for activating or deactivating a given light, ona 3rd p}arty XT keyboard it's the keyboard that controls the action of the lights( When powering-up it turns all the lights off). Si}nce the Atari normallypowers-up in upper case mode, TRANSKEY was designed not to alter this initialsetting and if at all po}ssible to reflect this by turning the keyboard CapsLocklight on ('AT' keyboards). With a PC/XT keyboard you will still be in} upper casemode from the computer's point of view, but the CapsLock light will be off. Thestate of this light after powerin}g-up, will also act as a good indicater as towhat type of keyboard you are using or in what way TRANSKEY has configureditse}lf when used with an Auto configuring keyboard.MICRO SOLUTIONSBOX 750396Petaluma, CA 94975(707) 763-9103Price Listing} TK01-SD TRANSKEY BOARD (Solder in Version) $48.00 $(Fits all models400/800/XL/XE$) TK01-PB TRANSKEY BOARD (Piggy-Back} Version) $58.00 $(400/800/XL ONLY solderlessinstallation$)all models400/800/XL/XE$) TK01-PB TRANSKEY BOARD (Piggy-Back= From: Chuck Steinman DataQue Products Post Office Box 134 Ontario, OH 44862 US}A To: All Current TransKey Owners Re: Stock Keyboard Non-Functionality Date: August 1, 1992 If you} are using a TransKey in your system, and the original Atari keyboard has some are all of the keys which either fail to wo}rk at all, or are inconsistant, this modification should correct that problem. SOLDER-IN VERSIONS: Disconnect t}he TransKey ribbon conductor which is attached to pin-25 of PoKey. Attach one end of a 1K Ohm, 1/4 Watt resistor to pin-2}5 of PoKey. Attach the other end of the resistor to the wire which was just disconnected. PLUG-IN VERSIONS: Yo}u will need to break the third from last conductor in the ribbon cable (see diagram below). This should be done about two} inches away from the PoKey adapter socket. Insert a 1K Ohm, 1/4 Watt resistor between the wire just broken. The }easiest way to break this conductor loose is to use a knife and cut the thin part of the insulation (between conductors) f}or about an inch, then when it is isolated, break it about in the middle. TOP VIEW DIP PLUG (TK END) ---\/--- }| 1 14|------------------------------------ | |------------------------------------ | 2 13|---------------}--------------------- | |------------------------------------ | |------------------------------------ }| 3 12|------------------------------------ | |------------------------------------ | 4 11|-------------\/}\/\/\/--------------- to pin-25 of PoKey | |------------------------------------ | 5 10|---------------------}--------------- | |---------- | 6 9|---------- Last 4 Unused | |---------- | 7 8|---------}- -------- thanks Chuck6 9|---------- Last 4 Unused | |---------- | 7 8|----------V V`pVN iVkVN0VWAV!"#$%&)JJJJV`)V`0ot#",ine0oint0icture0oint"rushicturealett}eH ԭ`ЩЩЩNWh@HH Խ` ԍнaнDbн`.Whh@D1: D1: D1: } D1: D1: WX Welcome to Philip Price's Multi-Color Drawer. (C)1984 Philip PriceAvailable }from ANTIC magazine.Please Enter the Picture name.D1: .PIC4`^ VlV B VB }JKLXE:DXE V BXYDWEHI V`BJKLXK:DXE VBD`EH}I V BD`EHI V``WWWWWɛ`  B V`.WWWWWPWWWWWIWCW}WWWWW0W1W2W3W YZWWWW B VBJKDWE VBD EHI V}BD0EHI VBtDXEHI V B V䢿tX`uX`vXawXDbBJKDW}E VBD`EHI V B V䢻Z[BJKDWE VBĝD`EHI V B V}BJKDWE VBDaEHI V B VBJKDWE VBDDbEHI V} B Vԍ/ԩ0V1.Wԩ>/[\ЩPԩЍЍЍЍЍЩ0ЩȍЩЍ L\8S\`I}Э)D):)04)))) L[Lq]L]L]L]L\L^L^LZ\U)S\S\L\S\L\})S\8S\S\S\ VWS\ VWTUS\\]i%SSTTT T`TU`U UU\ 8}S\L[T\IT\B(WWV@ VjV@kV@R\V\Lg]"WWV VjV0kV)}L[8S\)Hi)hL]8S\)H8)h]^L]8S\)Hi)hL]8S\)H8})h VV VV))L[, ҍU\IU\ W WL^W WL^R\i)R\# DbL^}aL^`L^ą`8S\@R\V\^_R\VV)L[/ԩ@ԥ))}BJKDWE V BD`EHI V B VBJKDWE V BĝD`EHI} V B VBJKDWE V BDaEHI V_` B VBJKDWE V B}DDbEHI V B Vԩ>/L[xX{{{{{aEHI V_` B VBJKDWE V B9 SYNOPSIS This program lets you change all four colors on every line in pictures drawn with mos!}t graphics programs that use mode E, Atari's high-resolution four-color mode. It works on all Atari computers, but requires a!} disk drive. You've been painting with tools like your KoalaPad or Micro-Painter for some time now, and you've pushed the p!}rograms to the limit. You're tired of having only 4 colors available! What can you do? Fortunately, here's Phillip Price's C!}olor Picture Painter, a program allowing you to systematically replace all four colors in each scan line of your picture -- w!}ith any of the 128 colors available on the Atari. (Scan lines are the horizontal lines traced by the electron beam of your pi!}cture tube. Each scan line represents a fraction of a picture you have created on yor Atari.) Price's Painter loads an uncom!}pressed Mode E file, (called Mode 7 1/2 on older 4oos and 8oos or Graphics Mode 15 on the XL computers), and then allows you !}to choose from 16 colors and eight degrees of brightness for each of the four color used in the original drawing. You use the!} joystick to color one scan line at a time, or to color entire vertical bands at once. When you are finished the painter sto!}res the original picture and the four color 'pots' that you've created. The five files are separate, and are combined only wh!}en you run the painter program. Price's painter works with files created by Micro-Painter, and Micro Illustrator, (aKvailabl!}e with the KoalaPad, Atari's Touch Tablet, Tech Sketch's Lightpen and Chalkboard's PowerPad). Incidentally, if you are using !}the Touch Tablet, you will need to save yor initial file in the uncompressed 62 sector mode bynb hitting the [INSERT] key whi!}le the picture is on your monitor. The file will be named "PICTURE." and you will need to go into DOS and rename the file "FI!}LENAME.PIC". It's easy to get started coloring... STEP 1: STARTING Painter is a machine la!}nguage program that's produced by the BASIC program accompanying this article. Type in the listing, and SAVE an extra backup !}copy. Next, RUN this program. The screen will go dark for several minutes so the computer can read the data faster. If you ma!}de a typing error, the proram will stop and display t;Y number of a line you need to retype correctly -- so TYPO isn't needed!}. When the screen turns blue again, press [RETURN] to write the machine language program named PAINTER.EXE to disk. Remove y!}our BASIC cartridge (XL owners press [OPTION] while booting DOS) before using Painter. Load PAINTER.EXE from DOS with menu op!}tion L. If you wish to have the program load automatically upon booting, use DOS menu option E to rename the file to AUTORUN.!}SYS, and make sure DOS.SYS exists on the disk. When painter starts, you will be asked which file to load. The file disk must!} be in drive 1, and the filename extender must be .PIC. Don't use backspace or ]cursor controls, since the program will only !}accept a maximum of eight keystrokes before going to the graphics screen. Use DOS to rename files if necessry. Type in the na!}me of the file you had previously created with, say, Micro-Painter. After the picture loads, you'll see it qon screen with th!}e defauly colors, the colors used in your original drawing. If you didn't use all four colors when making your original, some!} pots will be black, but they can be colored with Painter. STEP 2: COLORING Plug a joystick in!}to port 1. Press the first button while pushing forward or backward on the stick to position the arrows on either side of the!} screen. Release the button and move the joystick from side to side to select the color, move forward and backward to change !}a color's intensity. Note that you're in point mode (see the line at the top of the screen); this means that you will color o!}ne line at a time. If you have trouble seeing the thin horizontal line's color, look at the top of the screen to see the col!}or changes in a wide area. If you want to color larger areas, press [ESC], then [SELECT] to switch to brush mode, and push th!}e stick forwokard an&| backward to paint large areas with the currently selected color. Press [ESC], then [SELECT] again to r!}eturn to point mode. STEP 3: BACKGROUND AND FOREGROUND You have a palette of four pots, based on the f!}our colors of your original file. The palette is the field of colors in a given pot, without the structured picture. To chang!}e the pot whose colors you're modifying, press [SELECT]. To swich back and forth between picture and the palette, press [OPTI!}ON]. You can review the cF'`olors you're using without seeing the picture by switching to the palette, then using [SELECT] to!} move through the four pots. STEP 4: SAVING Press the [START] key to save the pots, but not !}the picture file. According to Phillip Price, the proram occasionally locks up when you press [START], necessitating rebootin!}g. The program saves four files representing the four pots. Checking your disk directory, you'll see them called FILENAME.PO,!} .P1, .P2, and .P3, with FILENAME replaced by the filename you originally typed in. If you have the original file and the fou!}r ports on the same disk, and don't chane any filenames, the next time you load the picture into Painter, the four pots will !}also be loaded. If you wish to work on a different picture, you must reload the entire program and start again from the begi!}nning. loaded. If you wish to work on a different picture, you must reload the entire program and start again from the begi ;System equates used CASINI = $02 TRAMSZ = $06 BOOT = $09 ATRACT = $4D VKEYBD = $0208 VVBLKI = $0222 SRTIMR = $022B KEYDEL %}= $02F1 CH1 = $02F2 CH = $02FC SSFLAG = $02FF KBCODE = $D209 SYSVBV = $E45F ;End of system equates ;Zero-page equates %}; ;Z0001 = $CD bufin = $CD ; idx for putting things ; into buf ;Z0002 = $CE bufout = $CE ; idx for taking things ; %} ; out of buf ; ;Z0003 = $CB ;Z0004 = $CC ksbufp = $CB ; keystroke buffer ; ;End of zero-page equates ; *= $0600 *= $B%}000 ; new ver PLA start: LDA #$03 STA BOOT ;$0009 LDA #start\ STA CASINI ;$0002 LDA #start^ STA CASINI+1 ;$0003 LD%}A #$00 STA bufin ;$00CD STA bufout ;$00CE ; LDA #$E0 lda #ksbuf\ STA ksbufp ;$00CB ; LDA #$06 lda #ksbuf^ STA ksbufp%}+1 ;$00CC ; LDA #$B4 lda #keyvbi\ STA VVBLKI ;$0222 ; LDA #$06 lda #keyvbi^ STA VVBLKI+1 ;$0223 ; LDA #$30 lda #ikeybd%}\ STA VKEYBD ;$0208 ; LDA #$06 lda #ikeybd^ STA VKEYBD+1 ;$0209 RTS ; ikeybd: ; keyboard interrupt TYA PHA LDA #$0%}3 STA BOOT ;$0009 LDA #start\ STA CASINI ;$0002 LDA #start^ STA CASINI+1 ;$0003 LDA KBCODE ;$D209 CMP CH1 ;$02F2 %}BNE L0005 ;$064B LDA KEYDEL ;$02F1 BNE L0006 ;$06AB L0005 LDA KBCODE ;$D209 CMP #$9F BNE L0007 ;$065C LDA SSFLAG ;%}$02FF EOR #$FF STA SSFLAG ;$02FF BCS L0006 ;$06AB L0007 CMP #$B2 BNE L0008 ;$066D LDA #$00 STA bufin ;$00CD STA bu%}fout ;$00CE LDA #$FF STA CH ;$02FC BCS L0006 ;$06AB L0008 STA CH1 ;$02F2 LDA #$03 STA KEYDEL ;$02F1 LDA #$00 STA %}ATRACT ;$004D LDA bufin ;$00CD CMP bufout ;$00CE BEQ L0009 ;$068B LDY bufin ;$00CD INY TYA CMP bufout ;$00CE BE%}Q L0006 ;$06AB LDA bufin ;$00CD BPL L0010 ;$069A L0009 LDA CH ;$02FC CMP #$FF BNE L0010 ;$069A LDA KBCODE ;$D209 %}STA CH ;$02FC BCS L0006 ;$06AB L0010 LDA KBCODE ;$D209 LDY bufin ;$00CD STA (ksbufp),Y ;$00CB INY TYA ; CMP #$1E cm%}p #kssize BNE L0011 ;$06A9 LDA #$00 L0011 STA bufin ;$00CD L0006 LDA #$30 STA SRTIMR ;$022B PLA TAY PLA RTI ; keyvb%}i: ; deferred processing, ; at vblank time LDA bufin ;$00CD CMP bufout ;$00CE BEQ L0012 ;$06D7 LDA #$30 STA S%}RTIMR ;$022B LDA CH ;$02FC CMP #$FF BNE L0012 ;$06D7 LDY bufout ;$00CE LDA (ksbufp),Y ;$00CB STA CH ;$02FC INY T%}YA ; CMP #$1E cmp #kssize BNE L0013 ;$06D5 LDA #$00 L0013 STA bufout ;$00CE L0012 JMP SYSVBV ;$E45F .BYTE $22,$0%}C ; ??? ; ;ksbuf = $6E0 ksbuf: kssize = $1E ; *= $02E2 ; ORA (TRAMSZ ,X) ;$0006 .word start ; ;External refer%}ence equates ;End of external references ; .END $2075 E2 ; ORA (TRAMSZ ,X) ;$0006 .word start ; ;External refer$ CR | | *} | | translation: | | | | Off |$CFD3 *} |53203 |$CFEB |53227 On |$CFD6 |53206 |$CFEE |53230 ----------*}------+---------------+---------------+---------------+-------- How to use the normal ZRam-DMA: ----------------------------*}--- The ZRam-DMA uses several bytes ($D6 - $E2) in the Zeropage. If you use the routine from a language other than BASIC, you* }'ll have to set the following variables: mode ($D6): 0 -> read from expansion memory else -> write into expansio* }n memory ZRam-address ($D7/$D8): address in the expansion memory normal adress ($DB/$DC): address in the normal RAM length* } ($DD/$DE): length of the block to transfer block ($DF): mask for the chosen block (see below) Then just jump to $CFD0. H* }ow to use it with BASIC: ------------------------- No Peeks, no Pokes, just one USR-routine: A=USR( 53224, , <* }address in expansion Ram>,
, , ) (in BASIC this call has to be in ONE line, of course) mode: '4' means "read from expansion Ram" '8' *}means "write into expansion Ram" Example: The command A=USR( 53224, 4, 10000, ADR(A$), 3333, 224 ) reads 3333 Bytes fro*}m the expansion Ram (address 10000, block 224) into the string A$. How to choose a block: --------------------- With 'block*}' I mean a sequence of 4 banks, e.g. $E3, $E7, $EB, $EF or $23, $27, $2B, $2F The routine takes the chosen block, adds a *}value ($03, $07, $0B or $0F) and switches to the corresponding bank like: POKE PORTB, (block OR <3/7/$B/$F>) AND PEEK(PORTB) *} You don't have to worry about this if you have a XE-compatible expansion. Reasonable values for blocks are: 64K expansion *}RAM: $E0 (224) 256K expansion RAM: $E0 (224) $A0 (160) $60 (96) $20 (32) I am not quite sure how to use it with an 1MB Axlo*}n-expansion - any suggestions are welcome! I think it does not work with a 4MB expansion, but if anyone needs this by all me*}ans then write to me! Users who want to use it with a Peters 1MB-expansion have to set the segment number (0-3) in $D600 (54*}784), if you want to use the full 1MB. ======== Caution: ======== - Be sure that the highest expansion-address:
+ - 1 is below $10000 (65536)! - Your screenmemory shouldn't be between $4000-$7FFF (16384 -*} 32767), or you'll get rubbish on your screen while using the ZRam-DMA. - I tested it with BASIC but until now not (real*}ly) with assembler! Bug reports (including errors and insufficent English in this doc), suggestions for improvement and add*}itional features (there isn't much space left!) please send to: jscharrl@ba-stuttgart.de Jochen Scharrlach Vordernbergstr. *}27 70191 Stuttgart Germany or (if you are also interested in ARGS-Hardware) Roland Buehler Engelgasse 21 72348 Rosenfeld G*}ermany 1 Stuttgart Germany or (if you are also interested in ARGS-Hardware) Roland Buehler Engelgasse 21 72348 Rosenfeld G(Filename.: argsos3.doc, argsos3.arc Title....: ARGS-OS 3 Author...: Atari/Ralf David/Roland Buehler/Jochen Scharrlach Date.}.....: 4. January 1994 Sponser..: A.R.G.S. Language.: M/L Category.: expanded OS Breakdown: ARGSOS.128 General Descripti. }on: OS with additional features (e.g. routine for using expanded memory) ed OS Breakdown: ARGSOS.128 General Descripti,NBB@ԭЍ`,lHHHLL+H) ߍҥl H-Il8%,LIҥm#2"}hlMh@h,l,lh hH)HlHh@@ 6 LMMM2#}NOEO%NТ U O¥B)L­д ԍ5 ԍ41ԭ0ԭ/ԭoЭll8l)ԢXEO%N2$} ԭԢ U R¢ U&)+>)2+2m-+ ɟ ɃɄɔ)? ҍL+2%}JJJJy{)xzЍЍҝpt ҢxJJJ}*|ʈl$l&l(`2&}` - -`hhh@x/j 'D" x=\>ɓ?%ȩxآ qĩRF2'}F# `eD" W cʩ)\=>%?2(}R'S) 0b%Kĝ.ĝ 5XLß_^ZX][suLPర  )ĩBHD2)}ĝE J VL  nƥj 9D )ll l`P0C@ESK BOOT ERRORE:,02*}­j l ĭ ӥ))ө(I I`}`ӝ2+}Нԝ<өө8Ӎөөө<Ӎӭӭө"ҩҍҩ(ҩ `67  2,},  L n e k Pn8ɍ9 )I` )3L;ƩS S0!   Y >ƭ`@BC2-}  iiA  Y >ƭЬ Y )ư ; `BiCill =ĊDE BHLV2.}LzRLS )'Lƭ> } ũ  `lF`1F!@PW2/}S  Y`S :ǠF! :Ǡȱȱ򈈌 ``320} Ǡ9 Ǡ/E &*ȍȍE3 Ǡ 3` Ǡ, Ǡ"Emm`l21}l3 sJjK J}K}mEHmh8Hh Hh h22}h`8H3m6m7h6LPm6m76m6676m6`m6m76}6`H3jhm6m723}6`mmm6ǒȒȒȒmmȵȵǕǩD)LHHѭɀ ɑ H`LHG 24}H hH qhB`jHH ʍH hHhh@LɠLɠLɠLɠ Lɠ L H`G=!25}H` H HLM`LMBHB HH ɐ LhhLʠHhBLMM`hh̀@ .M  .L 26}.@ L\LӍh`h`ӱHh`ӑ`ӱ2`ӑ2`@ e˩֭'L1 e27} W s cʘ` W U cʘ`BL8 cʩ2LW cʭё2 LWʭ W R cl" W U QLc,pH g28} W 1W ch@ chl)#%qJiI`֎֢֩֎֍`Wql234 545RЭ) 29}7,pР2ɛ ֢֩֍23454L˩,`hhhhhhhhhhhL,x X` 2:}@)`JJJJJJN%` ߥӱێӑ`ߍӱ٦ӑ`Ӆ 2 ;` ; 2̥LRLf |̥&e݅H2;} hL̤ ̥` ̥8ׅ۰eׅݩװL̢8թբ<Սթ8թթ<ՠ`<L< 2<}P L*ͩP͙`X8Lͪ0`ixJL͊ 0ɛ թ4թ<L͠X`XLL,`h`h`2=}MVLh8`2>}2?}2@}2A}ARGS-OSL,LLLLLLLLLLLLLLLLw䀲뚀2B}䀙߿ээ э эѩээ ѩээ э ``e`+Pѩ ѩѭэa ѭэb ѭэc ѭ2C}эd`````)`+P` hP b a# ѩѭ  ѭ Ѱ PLP ѩѭ  ѭ ѐ эѭ2D}) PLPLQc ѭdѭa b #  Im э ѐab[ эcэd Ɂ6LQ Q23 ʠ2E}` Qэf Qэg Q` Q Q`23 ʠ` `)` 3PUX( R'PXx R%#$2F} эѽ+PѭɀAɂ= ѭх" ѠXȥ#8XȩX## ёX "P R TLw`ʽ)? ߵ2G}%`+Pѩ ѭ&hj B VB Ve1Y@XT`eXXY`x"ԩЩ Щ Ժi 2H}'H T pT3 T 0T T) L)S L)S? SL)S Sh(Xl`2I} S yL)S T T 24LSݼT iǘhhL)S)LS!)論 2J} 0  `ԩTԠ'`b T pT pT jʙ pT牢 `HJJJJ ih)2K} i`) )) T `ppppBTpBAT2350?:*8-)#2/-/.# 2$avid; !*[=2 ԩi2L}`W`W09LʢH)WA A0Wh W0ǘ 0:; < =xW2M}ҩҩ605:23 44 U234 5, U V,P 0Vҥ V0X`# W ʅ1 2N} V 35451 V) VLV1 V W3545 V1` 0LU0,06L2O}U(ҮWLUjj)?j) V W< VAC Eв0c&V'L\) ߍҩҭҍ )  `LcVH2P})ҩh Үe1i1`ҍ ҩ(ҩҩ`?@He) g Uݯ hhhLJ˩ҥҊ e 2Q}` hPh`2R} ۰9 Hڢ D ۰!H hم٦0hL`.Eh+-X 2S}7H ۰H ehe ۥ Iihe+- ې08H*hj ۥiD ܰ  ` 2T}Qک0()?(E$8? p .L L٩` p 8逮0iE ܄ 82U}-+ ܢ8 i H h ܭ0 ii ܠ-`ԅՅ D&uԕةBLܩ0fCb82V}@?i ZڰS ZڰF ZڰAee2 ei$  iiԥ`8`Ԡ``&&2W}`I))8Դ0 >E0uذLܩ :ܩLܢ8LܥI8ՕL2X}E> 8@8e08 ܥ)0 LڥJJJJ0 L bץL D`8` 8i@0 LNۢՕ 82Y}ؐ ٠8ؐ е bL ۤȄ` `80 `H ې.+-h8` 2Z} . ېh`ՠ66666&`ڢ.`)q` D`ʈ2[}e` ԕ` 8JJJJ ܵ) . ` 0` .0ʽ` ۥ)`8`2\}E)F)`ԅ ( ۥ) 4 D`ߠߠyʈ``` 2]} ݦ - ڰ(ii fڰ  0````ԕ` 2^}ڰԅ)8@0&j ٥ԅX ݢ `ک M @ ڥ#ji@0 ڥ ݢ 2_} (`8`==W3>Tvb>2b'?h`06?2'A?%C4Vu?f'70P@U??CBH@ ݦ fڢ ݢ ݦ `ڢ2`} (`0L8`@ ) (ۢf ޢ ک r @ݢ ڢl f ݩեI2a}i $ԅ fڥ (`@"wf?P?IWQpIG?9 Wa9cU? 0d? 9`?BXGB?7?()q?D>DIh8E?h2b}yx? )D?@ (1V?wD3331??xS4ԅ8Lfffffff>`<|fl0fF68of;2c}p88pf< 80 0 ~~`0 0```nf>ff~fff~~f<flxxlf`````~cwkccfv~~nf2g}8pp8?ww<~~~<2h}x`x`~<~~<0~0 ~ <~~<<>f>``|ff|<```<>ff>2i}>ff>|``|fff8<<``lxlf8<fkc|ffffff>|f```>`<|~2j}ffff>fff<ck>6f< x~ 0~<~~<~x|nf8x8-I,Ln-Ln2k},,LnLyLLLLL3LrLLL\LL LL#LLLLL#LPLLLɕɚɟɤɩL ɢ2l}_j 3PLhP`@۝FGiɀ``/.)Lp@ " qLp )02m}"%*H_vL Lp' "  ,&-'Lr Lp#  'ۅ&Lr 2n} 氥 .@ Lr"%*Lp () /Lr /0A$ ") /ɛ L ۥ") /0 /ɛ󩉅# $ 2o} Lr"%*Lp ()/($/  (0")/ɛ()ۥ") Lr#.D$E% @ /.2p}#` ",-*稱,ȱ,-,`()(()`$%$`$%`.8H((I))` #`-H,H.`8$10 !2q}!$ ! 8` ` %JKJqJ&JKJ V O- `mm82r} N Ln 08 ݐH  h LYO@@ʎj2s}LEǮ}` 38` Q LY&@JKJȱJ`2t}8`JK V8( ]'JȭJJKJJ  (8`( JȑJqJȭqJJ VˠJ`Ji2u} KilLr ];JHKHJKDJqJ VJȱJhKhJJJ`hh8`L3ɩ<ө<ө2A`B`L2v} (ҩmi:; < =:2i4354 ?ΜL"  / ? 2w},p? ?00ν0L B0`?>2i435< 0>A!CE000Ɋ2x}?0`0 1;:2 ҅1L: `H232435; 1 ҩ;  hh@2 e1i1L; :)2y}h@1890 @<ӥL9`0`Hҍ 00) 08 109hh@ Ҡ2e1i12324352z}ޥ<<Щ82m43m 5`2̍ҩ b 0 4ӭ Lb 0 4ӭ2{} = 0<L*`-2 ` Ҡҍ2ҩ% LV-2 2ҍ ҩ% ҩ(ҢA2|}Ҭ`ҍ`%Ң`jj)?j)`,  7` .  . 8 82}} b8}mJJJ 8)i 8}}`|08|`b}`Lx%) Ԥ   2~}[XL')0 Ԥ ҭҭҩҭ2ҩU2ȑ212i23i3X` <ө<ө0XL*&2}'x \X`CT euxd   4dd //__aaaa a ''OOAAAA A  2}((PP@PPP(( 00`` 0 @ HH"0"0h2}h8`hh8`hh`$! ` %&'.M$L`HH)  hh`0.@ 0 )0hh'2}H&H`Lj@Qyz`a`+)*)*WLT̍k/Lҩ@,n č2}ԩd{j`WMQje( zo)?g jjj)g z odXeY2} z x]de edheiA pfW  9*)3n  ij p` pB ief-f-W n2} "QQ pW& ]j8 p pQ @ pQ pY pX pQ @ pp pp pd0e1p pde0hȭ1h2}L `*) R" //L j L d-FoJ`} L ɛ aL L 2}TZ****))I Fo L-PI1dPd` ]W I LL&LȩL`,n@ԩn΍L 2}b k4TlUm Lɛ bcq VL\  lTmUkk L0 Lb a LLbld b   < 2} Lb i- de Lb*Joe| бy0LɀɁ I2}ɂ  Ƀ@ИɄLɅ LLɉI LɎɊ| `L*ɒ Ɏr&|@a2}{ |L# < ML򩀍`TʆTL TTͿUU0RSULUUSRL dddeej2} cmTVl`cR!UR # UST  L UR e Xc ]LcL>cLJ L } cH hc }2}H }hL Wλ0TL L dheicH hcTͿ hڠh  WL8 RU L QTT8 [ix( <2} U * XL ` @Ln L0+dL0d8dee dL` p p`fʆeT 2}&e &eeTdeWmd&eVJUjfedeeXd^eeYe_%Uefo`}cUVUW} SސV2}ԥW,cQ }" aL eTix ]} L} VTW${T)#}ɛ llΝ8뭝TL82}ptpquq`W 'SSWT*( VV}U L` @Lhh{LbL_]^`H)nh2}JJJ`...` #n` #nI=`Tix #%n8`W ****))M`jʆigh؅fT'h2}f8hf(higiL Ziy( <0TTix(LfhdgsaL2}J:K\^OPUI_|VCBXZ$#&%"![ ]NM?REYTWQ()'@}FHDGSA {   ` }2}HHӭ ImɃIm )&= Ҫɟ I)?.M+//h2}hh@!ϭkk п)Lm/͍/HMO-N ԍh@L̍`+>*) >`? 0)42}Ӧb* \*=Lw` 0̍ҩҩ` h4Ӧb \**=`?03=2}=`R ?0= Lz?`==` |=``0<`=  |0 |L@b2}}ЩР@b} 6`%H$H` `#@R>  Y`2}UW ?`@ `S   Y0 D` `HA! Khɛ` 2} LY Kܠ`@!S@ ``W+N(DS  `NܭR 2}S8` 3Pfga b hP`+Pѭ  LP`23f2ȭg2ȩ2ȩ2`XBB2}l,` 3Pfga b hP`+Pѭ  LP`23f2ȭg2ȩ2ȩ2`XBB0 MaAAAU }Booting VISUAL480...% D:VIDEO480.L D2:RUNME.48079,16,80,-15,14o.d--(%} VISUAL 480II videogeneratorn00((For quadru:}ple colored hires-graphics.x//('Idea and implementation: Jesper Buhl.=-@@ =("Generating videocontrolle:}r II ... 33v2.0, released 9102041409, jbuhl@daimi.aau.dkPLACE DATA IN BLOCK #0#A %-B"B":}"!% XPLACE PRGS IN BLOCK #1b%-BBr"!% %-B$Bd"!%  1":}'6-%@1 A*/"6@,(File presumed ok./4 6-6">%-@!:}%&@% H6-%&@ ACOUNT, COLOURS & MSB'S(12288, BLOCK#0)&&0,182,52,132,80,112,48,9:}6,128,64DISPLAY/CANCEL/PLOT,DLI/DLIST(((19984/20018/20040, 20224 BLOCK#1)mm104,141,47,2,141,197,2,1:}41,0,2,169,79,141,1,2,141,49,2,169,41,141,48,2,161,192,141,14,212,169,34,141,47 2,96PP104,169,64,141,14,212,16:}9,32,141,48,2,169,156,141,49,2,169,10,141,197,2,96 mm104,104,133,204,104,133,203,41,7,133,207,162,3,70,204,102,203,2:}02,208,249,24,165,203,105,16,133,203,165 204 kk105,48,133,204,104,133,206,133,208,104,72,162,5,10,38,206,202,208,250,:}133,205,104,162,3,10,38,208,202% 208,250*kk24,101,205,133,205,165,206,101,208,133,206,24,165,203,101,205,133,203,165,2:}04,101,206,133,204,169,128/ 166,2074ll240,4,74,202,208,252,133,207,73,255,133,208,104,162,3,160,0,177,203,37,208,145,2:}03,104,74,72,144,6,1779 203>@@5,207,145,203,165,204,24,105,32,133,204,202,208,229,104,96HRmm141,10,212,72,138,:}72,174,0,48,189,1,48,141,198,2,189,4,48,141,46,79,189,7,48,141,150,79,232,224,3,208,2\##162,0,142,0,48,104,170,104,64f:}p<<-112,3,79,16,80,-15,101,79,0,96,-15,88,143,65,41,79,-1 D2:VIDEO480.L,2\##162,0,142,0,48,104,170,104,64f8S!X21X;X; MULTIPLY BY 8X; X8 X4!X21X;X;DIVISION CONTROLLER X;#DIVSR>;;Divide LOVAL/HIVAL by6}HDV1;;accumulator.( !DIV22 DV1R><HDV2F !DIV4P DV2R>ZHDV3d !DIV8nDV3:xX;X;DIVISION BY 2 ALGORITHM6}X; DIV2, WHIVAL WLOVAL,:X;X;DIVISION BY 4 ALGORITHMX;DIV4 DIV2 !DIV2X;X;DIVISION BY 6}8 ALGORITHMX;DIV8 DIV4" !DIV2,X;6 X;Get PPB and BPL from table.@X;JCOPYDATA$GRMODETQPIXPBYTE9^PPPBh6}QBYTEPLN9rPBPL|:X;'X;Calculate Top Left Corner Address.X;!X;Equivalent BASIC statement:-$X;TLMEM=SCRN+STY*B6}PL+INT(STX/PPB)X;TLCALCQSTY;;STY*BPL PLOVALQ> PHIVALQBPL MULT QLOVAL PTLMEMLO QHIVAL P6}TLMEMHI&,0QSCRNLO;;Add SCRN: OTLMEMLOD PTLMEMLON QSCRNHIX OTLMEMHIb PTLMEMHIlQSTXLO;;STX/PPBv PLOVAL Q6}STXHI PHIVALQPPB DIVS,QLOVAL;;Add to TLMEM OTLMEMLO PTLMEMLO QHIVAL OTLMEMHI PTLMEMHI:6}X;'X;### END OF GENERAL SUBROUTINES ### X;X; %X;**** MAIN COPY BLOCK ROUTINE ****X;4$X;Get parameters from USR com6}mand>X;HIRWDWCPY7;;Remove TOS\EIf7;; Screen Start Addressp PSCRNHIz7 PSCRNLO 7;; StartX of Top Left Cor6}ner PSTXHI7 PSTXLO77;; StartYPSTY 7;; EndX of Bottom Right Crnr PEXHI7 PEXLO 7;; EndY 7 P6}EY 7;; Storage buffer address$ PBUFHI. 78 PBUFLOB 7;; Graphics modeL 7V PGRMODE` Q>j PDIRECT;;0=COPY 1=PASTEt6} X;~ X; Get PPB and BPL for GRMODE X; COPYDATA X; !X; Get TLMEM (Top Left Memory) X; TLCALC X; X; Calcula6}te DX & DY X; DX=INT((EX-STX)/PPB) X; ; QEXLO;;EX-STX SSTXLO PLOVAL QEXHI SSTXHI( PHIVAL2 QPPB;;Divi6}de by PPB< DIVSF QLOVALP ,Z O>d PDXn X;x X;DY=EY-STY X; ; QEY SSTY , O> PDY X; X;Main Loo6}p To get block X; X;Store DX & DY first X;as headers of the buffer. X; $> QDX P@BUFLO6" #BUFLO, QBUFLO66} R>@ HG1J #BUFHIT G1QDY^ P@BUFLO6h #BUFLOr QBUFLO| R> HLOOP #BUFHI X; X;Now do loops X;See equ6}ivalent BASIC code. X; LOOPQ>;;FOR DOWN=0 To DY PDOWN;;FOR ACROSS=0 To DX PACROSS $> REP, QTLMEMLO O6}ACROSS PTEMPLO QTLMEMHI O>& PTEMPHI0 QDIRECT: R>;; 1 Means PASTE, 0=COPYD FPASTEN Q@TEMPLO6;;Get ByteX 6} P@BUFLO6b !COPYl PASTE PASTEBYTEv COPY#BUFLO QBUFLO R> HF1 #BUFHI F1#ACROSS QACROSS RDX D6}REP Q> PACROSS , QTLMEMLO OBPL PTLMEMLO QTLMEMHIO> PTLMEMHI* #DOWN4 QDOWN>RDYHDREPR:;;Done, R6}ETURN TO BASIC.\X;fX;p&X; *** MAIN PASTE BLOCK ROUTINE ***zX;IWDWPSTE7;;Get parameters.EI7;;Get Start ofPSCR6}NHI;;screen RAM.7 PSCRNLO7PSTXHI;;StartX7 PSTXLO77PSTY;;StartY7PBUFHI;;Buffer Address$7. PBUF6}LO8Q>BPDIRECT;;1=PASTELX;VX; Calculate TLMEM`X;j TLCALCt$>;;Get DX, DY~ Q@BUFLO6PDX #BUFLO QB6}UFLOR>HH1 #BUFHIH1Q@BUFLO6PDY #BUFLO QBUFLOR>HH2 #BUFHI H2QPPB;;IF 1 pixel/Byte6}R>;;then no shift.&HCALCSHIFT;;else calculate shifts.(!ESC2CALCSHIFT#TLMEMLO<QTLMEMLO;;Increment TLMEMFR>P6} HCONT1Z #TLMEMHIdX;nX;Calculate Shift pntrxX; = STX - ((STX/PPB)*PPB)X;CONT1QSTXLO;;(STX/PPB) PLOVAL 4}